<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Pico: Referência do Arquivo node.h</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Gerado por Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Página&nbsp;Principal</span></a></li>
      <li><a href="annotated.html"><span>Estruturas&nbsp;de&nbsp;Dados</span></a></li>
      <li class="current"><a href="files.html"><span>Arquivos</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Referência do Arquivo node.h</h1><code>#include &lt;stdio.h&gt;</code><br>

<p>
<a href="node_8h-source.html">Vá para o código-fonte deste arquivo.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Estruturas de Dados</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><b>_node</b></td></tr>

<tr><td colspan="2"><br><h2>Definições e Macros</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="77663608c57a6c6bccce7cc1eb6e5737"></a><!-- doxytag: member="node.h::program_node" ref="77663608c57a6c6bccce7cc1eb6e5737" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>program_node</b>&nbsp;&nbsp;&nbsp;299</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5d974d0c2ec32bd9933661a7474f5c57"></a><!-- doxytag: member="node.h::idf_node" ref="5d974d0c2ec32bd9933661a7474f5c57" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>idf_node</b>&nbsp;&nbsp;&nbsp;300</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="67e292cf5f04350986fe0675101308cd"></a><!-- doxytag: member="node.h::int_node" ref="67e292cf5f04350986fe0675101308cd" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>int_node</b>&nbsp;&nbsp;&nbsp;301</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9ab1f2880dcb6639a547348f8dc98a0a"></a><!-- doxytag: member="node.h::float_node" ref="9ab1f2880dcb6639a547348f8dc98a0a" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>float_node</b>&nbsp;&nbsp;&nbsp;302</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2cd909a26c99bbfb1dab02161a739c53"></a><!-- doxytag: member="node.h::str_node" ref="2cd909a26c99bbfb1dab02161a739c53" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>str_node</b>&nbsp;&nbsp;&nbsp;303</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3ed10796e3da4ffd23204cd01ae10374"></a><!-- doxytag: member="node.h::empty_node" ref="3ed10796e3da4ffd23204cd01ae10374" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>empty_node</b>&nbsp;&nbsp;&nbsp;304</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="423824216872d1ea72b3976fc1dc0a73"></a><!-- doxytag: member="node.h::proc_node" ref="423824216872d1ea72b3976fc1dc0a73" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>proc_node</b>&nbsp;&nbsp;&nbsp;305</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="19ac93e328ac2bbd0b63f6a8a430011b"></a><!-- doxytag: member="node.h::param_node" ref="19ac93e328ac2bbd0b63f6a8a430011b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>param_node</b>&nbsp;&nbsp;&nbsp;306</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="062fcc439b4dcbc110a17171f71d1a03"></a><!-- doxytag: member="node.h::decl_node" ref="062fcc439b4dcbc110a17171f71d1a03" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>decl_node</b>&nbsp;&nbsp;&nbsp;307</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="9e77cc4e7f46140473a2a5d1b4c58359"></a><!-- doxytag: member="node.h::decl_list_node" ref="9e77cc4e7f46140473a2a5d1b4c58359" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>decl_list_node</b>&nbsp;&nbsp;&nbsp;308</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="27ae5cdeee879f935b8232113a3f760d"></a><!-- doxytag: member="node.h::op_node" ref="27ae5cdeee879f935b8232113a3f760d" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>op_node</b>&nbsp;&nbsp;&nbsp;309</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="3a842fa575aacc27e03827bdb782703f"></a><!-- doxytag: member="node.h::nop_node" ref="3a842fa575aacc27e03827bdb782703f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>nop_node</b>&nbsp;&nbsp;&nbsp;310</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="57eec8c987f8be000104fc7b08df4afc"></a><!-- doxytag: member="node.h::return_node" ref="57eec8c987f8be000104fc7b08df4afc" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>return_node</b>&nbsp;&nbsp;&nbsp;311</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="2dab7cbe494f35e640da0e077b9f0685"></a><!-- doxytag: member="node.h::if_node" ref="2dab7cbe494f35e640da0e077b9f0685" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>if_node</b>&nbsp;&nbsp;&nbsp;312</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d4d3428de48de24ccc233212049c05a3"></a><!-- doxytag: member="node.h::while_node" ref="d4d3428de48de24ccc233212049c05a3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>while_node</b>&nbsp;&nbsp;&nbsp;313</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f88692762da864603da2070b33628cc1"></a><!-- doxytag: member="node.h::print_node" ref="f88692762da864603da2070b33628cc1" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>print_node</b>&nbsp;&nbsp;&nbsp;314</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a436873b24791df71e151d6e74e911e8"></a><!-- doxytag: member="node.h::cond_node" ref="a436873b24791df71e151d6e74e911e8" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>cond_node</b>&nbsp;&nbsp;&nbsp;315</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0363cacbed847105974b777dc3426d5b"></a><!-- doxytag: member="node.h::affect_node" ref="0363cacbed847105974b777dc3426d5b" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>affect_node</b>&nbsp;&nbsp;&nbsp;316</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="282ea317ff8cab292e72e3652681cd1f"></a><!-- doxytag: member="node.h::or_node" ref="282ea317ff8cab292e72e3652681cd1f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>or_node</b>&nbsp;&nbsp;&nbsp;317</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f5b6419be5645dddb4dc934531a01c29"></a><!-- doxytag: member="node.h::and_node" ref="f5b6419be5645dddb4dc934531a01c29" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>and_node</b>&nbsp;&nbsp;&nbsp;318</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="dd397b31f2f3e546b3d57a15cdb3f438"></a><!-- doxytag: member="node.h::eq_node" ref="dd397b31f2f3e546b3d57a15cdb3f438" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>eq_node</b>&nbsp;&nbsp;&nbsp;319</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b5c106e4627d7fd14a95a97d443122ee"></a><!-- doxytag: member="node.h::neq_node" ref="b5c106e4627d7fd14a95a97d443122ee" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>neq_node</b>&nbsp;&nbsp;&nbsp;320</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7b4d686d101a4db3abcaeac75796c8b7"></a><!-- doxytag: member="node.h::inf_node" ref="7b4d686d101a4db3abcaeac75796c8b7" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>inf_node</b>&nbsp;&nbsp;&nbsp;321</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="7d6a6248f712e9ac8a3263438e34778f"></a><!-- doxytag: member="node.h::sup_node" ref="7d6a6248f712e9ac8a3263438e34778f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>sup_node</b>&nbsp;&nbsp;&nbsp;322</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="5d651064e57a61682c02f2204cdfa1c7"></a><!-- doxytag: member="node.h::inf_eq_node" ref="5d651064e57a61682c02f2204cdfa1c7" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>inf_eq_node</b>&nbsp;&nbsp;&nbsp;323</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="0f297da211b05c77ace5ad0ff8d6c039"></a><!-- doxytag: member="node.h::sup_eq_node" ref="0f297da211b05c77ace5ad0ff8d6c039" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>sup_eq_node</b>&nbsp;&nbsp;&nbsp;324</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b1fe89425687d9fc2f8411abe7b9540e"></a><!-- doxytag: member="node.h::plus_node" ref="b1fe89425687d9fc2f8411abe7b9540e" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>plus_node</b>&nbsp;&nbsp;&nbsp;325</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="d2c79259353a3c28378d14ae8e763424"></a><!-- doxytag: member="node.h::minus_node" ref="d2c79259353a3c28378d14ae8e763424" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>minus_node</b>&nbsp;&nbsp;&nbsp;326</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="855a3e1da645b4722fb52cabab89e8b3"></a><!-- doxytag: member="node.h::mult_node" ref="855a3e1da645b4722fb52cabab89e8b3" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>mult_node</b>&nbsp;&nbsp;&nbsp;327</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="81a2aaf9ccf52caac6f04ed53df03350"></a><!-- doxytag: member="node.h::div_node" ref="81a2aaf9ccf52caac6f04ed53df03350" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>div_node</b>&nbsp;&nbsp;&nbsp;328</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="8a25303f040b4f05ba38008486f8b992"></a><!-- doxytag: member="node.h::mod_node" ref="8a25303f040b4f05ba38008486f8b992" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>mod_node</b>&nbsp;&nbsp;&nbsp;329</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="41429490adac54538956b6b398bcc495"></a><!-- doxytag: member="node.h::umenos_node" ref="41429490adac54538956b6b398bcc495" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>umenos_node</b>&nbsp;&nbsp;&nbsp;330</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4b7dfce1aa463da2bd452ae3d0830f5c"></a><!-- doxytag: member="node.h::not_node" ref="4b7dfce1aa463da2bd452ae3d0830f5c" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>not_node</b>&nbsp;&nbsp;&nbsp;331</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e3434f24eef5efc81d626ded20c0756a"></a><!-- doxytag: member="node.h::char_node" ref="e3434f24eef5efc81d626ded20c0756a" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>char_node</b>&nbsp;&nbsp;&nbsp;332</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="eeb8ab178d3de274b70a6430d31311eb"></a><!-- doxytag: member="node.h::bloc_node" ref="eeb8ab178d3de274b70a6430d31311eb" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>bloc_node</b>&nbsp;&nbsp;&nbsp;333</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f451f8b8b1350c4f78920c1b2be3c58f"></a><!-- doxytag: member="node.h::true_node" ref="f451f8b8b1350c4f78920c1b2be3c58f" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>true_node</b>&nbsp;&nbsp;&nbsp;335</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="4416611236a7abad08a9455bf7ef0445"></a><!-- doxytag: member="node.h::false_node" ref="4416611236a7abad08a9455bf7ef0445" args="" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>false_node</b>&nbsp;&nbsp;&nbsp;336</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#09a8473c6902dc780c5056f2df196911">MAX_CHILDREN_NUMBER</a>&nbsp;&nbsp;&nbsp;10</td></tr>

<tr><td colspan="2"><br><h2>Definições de Tipos</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="f78666e6cb576ec864360f78107a356a"></a><!-- doxytag: member="node.h::Node_type" ref="f78666e6cb576ec864360f78107a356a" args="" -->
typedef int&nbsp;</td><td class="memItemRight" valign="bottom"><b>Node_type</b></td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="6390a1d02010dee1843fa2b1263308c1"></a><!-- doxytag: member="node.h::Node" ref="6390a1d02010dee1843fa2b1263308c1" args="" -->
typedef struct _node&nbsp;</td><td class="memItemRight" valign="bottom"><b>Node</b></td></tr>

<tr><td colspan="2"><br><h2>Funções</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">Node *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#3bf702618dee6354751e95c9c0f800c9">create_node</a> (int nl, Node_type t, char *lexema, void *att, int nbc, Node **children)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Node *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#c796e8a6c8fa6a58d06f7094152816bb">create_leaf</a> (int nl, Node_type t, char *lexema, void *att)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#a7faef607e574100e30b08bb3b00fe0d">nb_of_children</a> (Node *n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">Node *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#e033a5706b5c6d0058874e04c9a7c180">child</a> (Node *n, int i)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#58649350a2079d8c22fdf5b005a82bf2">deep_free_node</a> (Node *n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#4af6752a1b7e972b6b108010956f41b2">height</a> (Node *n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="node_8h.html#8fa39d81a8f9a78012fe82207d11fa9d">node_number</a> (Node *n)</td></tr>

</table>
<hr><a name="_details"></a><h2>Descrição Detalhada</h2>
<dl class="version" compact><dt><b>Versão:</b></dt><dd>1.1 </dd></dl>
<hr><h2>Definições e macros</h2>
<a class="anchor" name="09a8473c6902dc780c5056f2df196911"></a><!-- doxytag: member="node.h::MAX_CHILDREN_NUMBER" ref="09a8473c6902dc780c5056f2df196911" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define MAX_CHILDREN_NUMBER&nbsp;&nbsp;&nbsp;10          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Estrutura de dados parcial para o no da arvore. Trata-se de uma arvore generalizada: qualquer no pode ter de 0 ateh MAX_CHILDREN_NUMBER filhos. 
</div>
</div><p>
<hr><h2>Funções</h2>
<a class="anchor" name="e033a5706b5c6d0058874e04c9a7c180"></a><!-- doxytag: member="node.h::child" ref="e033a5706b5c6d0058874e04c9a7c180" args="(Node *n, int i)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Node* child           </td>
          <td>(</td>
          <td class="paramtype">Node *&nbsp;</td>
          <td class="paramname"> <em>n</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>i</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
accessor to the i'th child of a Node. <dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>: the node to be consulted. Must return en error if 'n' is NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>i</em>&nbsp;</td><td>: the number of the child that one wants. Must be strictly lower than n-&gt;num_children and larger than 0. Must return an error if i is not correct. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>a pointer on a Node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="c796e8a6c8fa6a58d06f7094152816bb"></a><!-- doxytag: member="node.h::create_leaf" ref="c796e8a6c8fa6a58d06f7094152816bb" args="(int nl, Node_type t, char *lexema, void *att)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Node* create_leaf           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Node_type&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>lexema</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>att</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor of a leaf Node (without any child). <dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nl</em>&nbsp;</td><td>: line number of the instruction that originates the node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: node type (one of the values # define'd above). Must return an error if the type in not correct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lexema</em>&nbsp;</td><td>: whatever string you want to associate to the node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>att</em>&nbsp;</td><td>: a semantica attribute (can be NULL for now). </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>a (pointer) on a new Node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="3bf702618dee6354751e95c9c0f800c9"></a><!-- doxytag: member="node.h::create_node" ref="3bf702618dee6354751e95c9c0f800c9" args="(int nl, Node_type t, char *lexema, void *att, int nbc, Node **children)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Node* create_node           </td>
          <td>(</td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Node_type&nbsp;</td>
          <td class="paramname"> <em>t</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>lexema</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>att</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nbc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Node **&nbsp;</td>
          <td class="paramname"> <em>children</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Constructor of a Node.<p>
<dl compact><dt><b>Parâmetros:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>nl</em>&nbsp;</td><td>: line number of the instruction that originates the node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>: node type (one of the values # define'd above). Must return an error if the type in not correct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>lexema</em>&nbsp;</td><td>: whatever string you want to associate to the node. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>att</em>&nbsp;</td><td>: a semantical attribute. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nbc</em>&nbsp;</td><td>: number of children nodes (&lt;= MAX_CHILDREN_NUMBER and &gt;= 0). Must return an error if nbc it not correct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>children</em>&nbsp;</td><td>: array of children nodes (of size 'nbc'). </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Retorna:</b></dt><dd>a (pointer on a) new Node. </dd></dl>

</div>
</div><p>
<a class="anchor" name="58649350a2079d8c22fdf5b005a82bf2"></a><!-- doxytag: member="node.h::deep_free_node" ref="58649350a2079d8c22fdf5b005a82bf2" args="(Node *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int deep_free_node           </td>
          <td>(</td>
          <td class="paramtype">Node *&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Destructor of a Node. Desallocates (recursively) all the tree rooted at 'n'. 
</div>
</div><p>
<a class="anchor" name="4af6752a1b7e972b6b108010956f41b2"></a><!-- doxytag: member="node.h::height" ref="4af6752a1b7e972b6b108010956f41b2" args="(Node *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int height           </td>
          <td>(</td>
          <td class="paramtype">Node *&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the height of the tree rooted by 'n'. The height of a leaf is 1. 
</div>
</div><p>
<a class="anchor" name="a7faef607e574100e30b08bb3b00fe0d"></a><!-- doxytag: member="node.h::nb_of_children" ref="a7faef607e574100e30b08bb3b00fe0d" args="(Node *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int nb_of_children           </td>
          <td>(</td>
          <td class="paramtype">Node *&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
accessor to the number of children of a Node. Must return en error if 'n' is NULL. 
</div>
</div><p>
<a class="anchor" name="8fa39d81a8f9a78012fe82207d11fa9d"></a><!-- doxytag: member="node.h::node_number" ref="8fa39d81a8f9a78012fe82207d11fa9d" args="(Node *n)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int node_number           </td>
          <td>(</td>
          <td class="paramtype">Node *&nbsp;</td>
          <td class="paramname"> <em>n</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td width="100%"></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
returns the number of nodes in the tree. 
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Gerado em Tue Aug 24 09:54:21 2010 para Pico por&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.5 </small></address>
</body>
</html>
